package com.example.userdemo.service;

import com.example.userdemo.model.User;
import com.example.userdemo.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.TimeUnit;

@Service
public class UserService {
    private final UserRepository userRepository;

    // 从配置文件注入延迟时间（默认0毫秒）
    @Value("${user.query.delay.ms:0}")
    private int queryDelayMs;

    @Autowired
    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    // 原有方法：保持不变
    public User createUser(User user) {
        return userRepository.save(user);
    }

    // 改造：查询用户ID时添加可配置的延迟
    public Optional<User> getUserById(Long id) {
        // 性能测试：添加延迟（如果配置了延迟时间>0）
        if (queryDelayMs > 0) {
            try {
                // 线程休眠指定毫秒数，模拟查询耗时
                TimeUnit.MILLISECONDS.sleep(queryDelayMs);
            } catch (InterruptedException e) {
                // 恢复中断状态，不影响后续逻辑
                Thread.currentThread().interrupt();
            }
        }

        // 原有查询逻辑（实际查库）
        return userRepository.findById(id);
    }

    // 原有方法：保持不变
    public List<User> getAllUsers() {
        return userRepository.findAll();
    }


}